package com.ruoyi.common.core.domain.business.waterPrice;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 农户水费台账登记对象 wi_farmacct_y
 * 
 * @author ps
 * @date 2023-02-17
 */
@Data
@TableName("wi_farmacct_y")
public class WiFarmacctY extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 水费年度 */
    @NotBlank(message = "年份不能为空")
    @Excel(name = "计收年度")
    private String feeYr;

    /** 农户代码 */
    @NotBlank(message = "农户代码不能为空")
    private String farmCd;

    @Excel(name = "用水户")
    private String farmNm;

    /** 应收水费 */
    @Excel(name = "应收水费")
    private BigDecimal totalFee;

    /** 实收水费 */
    @Excel(name = "实收水费")
    @NotNull(message = "水费不能为空")
    private BigDecimal payFee;

    /** 尚欠水费 */
    @Excel(name = "尚欠水费")
    private BigDecimal saveFee;

    /** 缴费次数 */
    @Excel(name = "缴费次数")
    private Long cashNum;

    /** 最后缴费时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后缴费时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastTime;

    /** 收费人 */
    @Excel(name = "收费人")
    private String lastOper;

    /** 记录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date writeTime;

    /** 备注 */
    @Excel(name = "备注")
    private String farmMark;

    @NotBlank(message = "成功标记不能为空")
    private String isOk;

    private long attrNum;

    private String[] voucherPath;

    private BigDecimal completeRate;

    public void setFeeYr(String feeYr) 
    {
        this.feeYr = feeYr;
    }

    public String getFeeYr() 
    {
        return feeYr;
    }
    public void setFarmCd(String farmCd) 
    {
        this.farmCd = farmCd;
    }

    public String getFarmCd() 
    {
        return farmCd;
    }
    public void setTotalFee(BigDecimal totalFee)
    {
        this.totalFee = totalFee;
    }

    public BigDecimal getTotalFee()
    {
        return totalFee;
    }
    public void setCashNum(Long cashNum) 
    {
        this.cashNum = cashNum;
    }

    public Long getCashNum() 
    {
        return cashNum;
    }
    public void setPayFee(BigDecimal payFee)
    {
        this.payFee = payFee;
    }

    public BigDecimal getPayFee()
    {
        return payFee;
    }
    public void setSaveFee(BigDecimal saveFee)
    {
        this.saveFee = saveFee;
    }

    public BigDecimal getSaveFee()
    {
        return saveFee;
    }
    public void setLastTime(Date lastTime) 
    {
        this.lastTime = lastTime;
    }

    public Date getLastTime() 
    {
        return lastTime;
    }
    public void setLastOper(String lastOper) 
    {
        this.lastOper = lastOper;
    }

    public String getLastOper() 
    {
        return lastOper;
    }
    public void setWriteTime(Date writeTime) 
    {
        this.writeTime = writeTime;
    }

    public Date getWriteTime() 
    {
        return writeTime;
    }
    public void setFarmMark(String farmMark) 
    {
        this.farmMark = farmMark;
    }

    public String getFarmMark() 
    {
        return farmMark;
    }

    @Override
    public String toString() {
        return "WiFarmacctY{" +
                "feeYr='" + feeYr + '\'' +
                ", farmCd='" + farmCd + '\'' +
                ", farmNm='" + farmNm + '\'' +
                ", totalFee=" + totalFee +
                ", cashNum=" + cashNum +
                ", payFee=" + payFee +
                ", saveFee=" + saveFee +
                ", lastTime=" + lastTime +
                ", lastOper='" + lastOper + '\'' +
                ", writeTime=" + writeTime +
                ", farmMark='" + farmMark + '\'' +
                ", isOk='" + isOk + '\'' +
                ", attrNum=" + attrNum +
                ", voucherPath=" + Arrays.toString(voucherPath) +
                ", completeRate=" + completeRate +
                '}';
    }
}
